# 每次使用FGAN等生成，都有这个问题
# 如保存为1.png,2.png,...
# 或者1.bmp，2.bmp，...
# 这里按照顺序复原成原来的图像名
import os,shutil

# 获得文件名
# def getFnames(files):
#     get_name = lambda x: x.split('.')[0]    # 获得json文件名
#     filenames = [get_name(name) for name in files]
#     return filenames

def convert2OriginalName(ref_dir,dir,target_dir = ""):

    # 获取参考序列
    ref_files = os.listdir(ref_dir)
    # ref_fnames = getFnames(ref_files)

    # 获取按序保存为数字的序列（数字，要排序）
    files = os.listdir(dir)
    savedOrderedFiles = sorted(files,key=lambda x:int(x.split('.')[0]))   # 这个就是初始读出来的顺序

    # 进行重命名
    if target_dir:
        os.makedirs(target_dir,exist_ok=True)   # 创建新文件夹
        print("处理完了：",end="")
        for src,target in zip(savedOrderedFiles,ref_files):
            src_path = os.path.join(dir,src)
            target_path = os.path.join(target_dir,target)
            shutil.copyfile(src_path, target_path)  # 复制
            print(src)
    else:
        print("处理完了：", end="")
        for src, target in zip(savedOrderedFiles, ref_files):
            src_path = os.path.join(dir, src)
            origin_path = os.path.join(dir, target)

            shutil.move(src_path, origin_path)  # 移动
            print(src)

if __name__ == '__main__':
    ref_dir = "D:/cycleFusion-project/dataset-1444/msrs_c1/ir"  # 获取所有模型的数据，json格式
    dir = "D:/cycleFusion-project/dataset-1444/fusedmodels/PerceptualFusion"
    target_dir = dir + "2"  # 可选拷贝到其他文件夹，无则移动
    convert2OriginalName(ref_dir,dir,target_dir)
    # convert2OriginalName(ref_dir,dir)
